﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace Kooboo.Commerce
{
    public interface IProduct
    {
        int Id
        {
            get;
            set;
        }
            
        [Required]
        [StringLength(255)]
        string Name
        {
            get;
            set;
        }

        [StringLength(500)]
        string Summary
        {
            get;
            set;
        }

        string Description
        {
            get;
            set;
        }
        

        decimal? Weight
        {
            get;
            set;
        }

        PackageSize PackageSize
        {
            get;
            set;
        }

        IBrand Brand
        {
            get;
            set;
        }

        IProductType ProductType
        {
            get;
            set;
        }

        ITax Tax
        {
            get;
            set;
        }

        List<ISaleItem> SaleItems
        {
            get;
            set;
        }

        List<IProductImage> ProductImages
        {
            get;
            set;
        }

        List<IProductCustomField> ProductCustomFields
        {
            get;
            set;
        }

        IQueryable<ICategory> Categories
        {
            get;
            set;
        }

        IQueryable<IProductReview> ProductReviews
        {
            get;
        }

        IQueryable<IProductQuestion> ProductQuestions
        {
            get;
        }       

        //IQueryable<IOrder> Orders
        //{
        //    get;
        //}
    }
}
